package cn.tedu.csmall.business.service.impl;

import cn.tedu.csmall.business.service.IBusinessService;
import cn.tedu.csmall.commons.pojo.order.dto.OrderAddDTO;
import cn.tedu.csmall.order.service.IOrderService;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.stereotype.Service;

@Service
@Slf4j
public class BusinessServiceImpl implements IBusinessService {

    //  Dubbo调用order模块的新增订单的功能
    // business是单纯的消费者，不需要在类上编写@DubboService
    @DubboReference
    private IOrderService dubboOrderService;

    @GlobalTransactional
    @Override
    public void buy() {
        //  模拟购买业务
        //  先实例化一个用于新增订单的DTO对象
        OrderAddDTO orderAddDTO = new OrderAddDTO();
        orderAddDTO.setUserId("UU100");
        orderAddDTO.setCommodityCode("PC100");
        orderAddDTO.setCount(5);
        orderAddDTO.setMoney(100);
        //因为是模拟购买，所以暂时只做输出信息效果即可
        log.info("新增订单信息为:{}",orderAddDTO);

        //  dubbo调用，将上面实例化的对象生成订单，真实影像数据库
        dubboOrderService.orderAdd(orderAddDTO);
    }
}
